package com.example.week9_advanceui;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

public class ListView3_Activity extends AppCompatActivity {

    //定义下拉列表需要显示的文本数组
    private String[] learningSiteArray={"逸夫图书馆","承先图书馆","综合楼","四教","五教","六教"};
    //为方便后面可以进行”添加“等动态操作，不能用静态数组做数据源，而要用动态的ArrayList表示数据
    // 拓展建议：是否可以将数据源改为SharedPreferences,甚至数据库？可以自己做一下
   ArrayList arrayList=new ArrayList();

    ListView listView=null;

    //定义用于”添加“的编辑框对象
    EditText addEdt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view3_);

        //从静态数组中获得列表项
        //请拓展中尝试从文件、SharedPreferences、数据库中动态获得数据
        for(int i=0;i<learningSiteArray.length;i++)
        {
            arrayList.add(learningSiteArray[i]);
        }
        //获得id为listview3的ListView组件
        //这个id在activity_listview3.xml文件中，用于显示适配器中的数据
        listView=(ListView)findViewById(R.id.listview3);

        //创建Adapter对象，因为其后要实现数据源的更新
        //故不能像教材中那样用匿名对象，也不能使用固定大小的数组
         final ArrayAdapter adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arrayList);

        listView.setAdapter(adapter);
        //设置ListView中数据项被点击的事件监听
       // addEdt=(EditText) findViewById(R.id.addListView3Edt);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(ListView3_Activity.this, "您选择了" + learningSiteArray[position], Toast.LENGTH_LONG).show();
            }
        });

        //初始化处理"添加"逻辑的组件
        addEdt=(EditText) findViewById(R.id.addListView3Edt);

        //设置"添加"按钮的事件监听
        findViewById(R.id.addListView3Bnt).setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v) {
                //向arrayList数组中增加一个元素
                arrayList.add(addEdt.getText().toString());
                //通知Adapter对象刷新数据集
                adapter.notifyDataSetInvalidated();
                //情况编辑框
                addEdt.setText("");
            }
        });

    }
}
